package com.ling.pl.autoproject.definition.entity.model;

import com.ling.pl.core.commons.annotation.Dict;
import com.ling.pl.core.commons.annotation.ModelProperty;

import javax.persistence.Column;

public class EntityTemplateProperty {
    @Column(name = "ENTITY_ID", length = 36)
    @ModelProperty(comment = "实体模板id")
    String entityTemplateId;

    @Column(name = "NAME", length = 150)
    @ModelProperty(comment = "中文名称")
    String name;

    @Column(name = "TABLE_NAME", length = 150)
    @ModelProperty(comment = "表/文档/名称", des = "相当于表列明")
    String columnName;

    @Column(name = "nullAble")
    @ModelProperty(comment = "代码名称", des = "对应className,表示类的属性名称")
    Boolean propertyName;

    @Column(name = "DATA_TYPE", length = 150)
    @ModelProperty(comment = "实体类型")
    @Dict(code = "builder.property.dataType", des = "文本,指定长度, 长文本 长度1000, 长文本,没有长度限制, html文本,没有长度限制, 整型, 浮点, 数值, 日期时间型, 日期型, 时间型, 是否逻辑, 真假逻辑, 单项选择-数值, 单项选择-文本, 多项选择-数值, 多项选择-文本, 外键值, 外键值文本, 外键值附加数据, 继承属性, 数字串业务标识-数字类型-用户可见, 数字串业务标识-文本类型-用户可见, 全局唯一标识-文本类型-用户不可见, 货币, 货币单位, 出生日期, 电子邮件, 工作流处理状态")
    String dataType;

    @Column(name = "LENGTH_")
    @ModelProperty(comment = "长度")
    Integer length;

    @Column(name = "PRECISION_")
    @ModelProperty(comment = "浮点")
    Integer precision;

    @Column(name = "IS_KEY")
    @ModelProperty(comment = "主键属性")
    Boolean isKey;

    @Column(name = "IS_KEY")
    @ModelProperty(comment = "主信息属性")
    Boolean isMainProperty;

    @Column(name = "BASE_TYPE")
    @ModelProperty(comment = "系统保留属性/预定义类型")
    @Dict(code = "builder.property.baseType", des = "逻辑有效标识,建立人,建立时间,更新人,更新时间,组织机构标识,组织结构名称,部门标识,部门名称")
    String baseType;

    @Column(name = "IS_KEY")
    @ModelProperty(comment = "排序值")
    Integer sortOrder;
}
